#!/bin/bash
# 一键安装图形桌面 + VNC
#准备安装
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 GNOME桌面
sudo apt install -y gnome-core

#eokjdu
sudo apt --fix-broken install
sudo apt install -y gnome-core gnome-session gdm3

# 安装 VNC 服务器（TightVNC）
sudo apt purge tightvncserver -y
sudo apt install -y tigervnc-standalone-server tigervnc-xorg-extension

# 设置 VNC 密码（自动输入密码 "123456" 并确认）
echo "请设置 VNC 密码"
vncserver

# 创建 VNC 启动脚本
cat <<EOF > ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XDG_CURRENT_DESKTOP=GNOME
export GNOME_SHELL_SESSION_MODE=classic
exec /usr/bin/gnome-session --session=gnome-classic
EOF

#赋予执行权限
chmod +x ~/.vnc/xstartup

# 启动 VNC 服务器（分辨率 1280x720，深度 24）
vncserver -geometry 2560x1440 -depth 24 -localhost no -xstartup ~/.vnc/xstartup

# 配置 VNC 开机自启
cat <<EOF | sudo tee /etc/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC) for GNOME on display :%i
After=graphical.target network.target
Requires=display-manager.service  # 确保显示管理器（gdm3/lightdm）已启动

[Service]
Type=simple
User=$USER
Environment="DISPLAY=:%i"  # 传递正确的 DISPLAY 变量
Environment="XAUTHORITY=/run/user/$(id -u $USER)/gdm/Xauthority"  # GNOME 认证文件路径
ExecStartPre=/bin/sh -c 'until [ -S /tmp/.X11-unix/X%d ]; do sleep 1; done'  # 等待 Xorg 就绪
ExecStart=/usr/bin/vncserver -depth 24 -geometry 2560x1440 -xstartup /usr/bin/gnome-session :%i
ExecStop=/usr/bin/vncserver -kill :%i
Restart=on-failure
RestartSec=5

[Install]
WantedBy=graphical.target  # 绑定到图形目标
EOF

# 启用并启动 VNC 服务
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1
sudo systemctl start vncserver@1

# 安装 Firefox 浏览器（可选）
sudo apt install -y firefox

# 开放防火墙端口（5901）
sudo ufw allow 5901

# 输出连接信息
IP=$(curl -s ifconfig.me)
echo-----------------------------------
echo "安装完成！"                                 
echo "VNC 连接信息："
echo "地址: $IP:5901"
echo "密码: （请牢记密码）"
echo-----------------------------------